package com.bird.file.filepackage;

import java.io.File;

/**
 * @author sijunqiang
 * @data 2021/7/31 11:31
 * @description: 文件过滤器
 */
public class FileFilter {
    //java.io.FileFilter是一个接口，是File的过滤器。 该接口的对象可以传递给File类的
    //listFiles(FileFilter filter) 作为参数， 接口中只有一个方法。
    //public abstract boolean accept(File pathname)  ` ：测试pathname是否应该包含在当前File目录中，符合则返回true。


    // 获取所有的java文件
    public static void main(String[] args) {
        File dir = new File("D:\\code\\javaee");
      rec(dir);
    }

    public static void rec(File file) {
        // 文件过滤器
        File[] files = file.listFiles(new java.io.FileFilter() {
            public boolean accept(File pathname) {
                // 这是是要处理的过滤规则
                return pathname.getName().endsWith(".java") || pathname.isDirectory();
            }
        });

        if (files == null) {
            return;
        }

        for (File file1 : files) {
            if (file1.isFile()) {
                System.out.println(file1.getName());
            }else{
                rec(file1);
            }
        }

    }

}
